﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace IMCOM.Imagiality.ImageProcessing.Canvas2D.ROI
{
    public abstract class Canvas2DROIState
    {
        protected Canvas2DImageProcessor controller;
        protected Rectangle roiRect;

        public Rectangle ROIRect
        {
            get
            {
                return roiRect;
            }
            set
            {
                roiRect = value;
            }
        }

        public Canvas2DROIState(Canvas2DImageProcessor controller)
        {
            this.controller = controller;
        }

        public abstract void MouseDown(object sender, MouseEventArgs e);
        public abstract void MouseUp(object sender, MouseEventArgs e);
        public abstract void MouseMoved(object sender, MouseEventArgs e);
        public abstract void ImagePainted(object sender, PaintEventArgs e);
        protected void SetControllerState(Canvas2DROIState newState)
        {
            controller.SetROIState(newState);
        }
    }
}
